package demo.practice.leetcode_eveyday;

public class P1734 {

    public static void main(String[] args) {
        P1734 p1734= new P1734();
        p1734.decode(new int[]{3,1});
    }

    public int[] decode(int[] encoded) {

        int abcde=0;    //假设abcde 为原来每个数字的连续异或
        for (int i=0;i<encoded.length+1;i++) {
            abcde=abcde^(i+1);
        }

        //1，2，3  12，23
        int bcde=0; //假设除了第一个数字之外，其他数字的异或为bcde
        //encoded为 ab bc cd de  bcde=  bc ^ de
        for(int i=1;i<encoded.length;i=i+2){
            bcde=bcde^encoded[i];
        }

        int a = abcde^bcde;
        //a^b= encoded[i]  推导  (a^b)^a=a^a^b=b  推导     encoded[i]^a= b

        int [] t= new int[encoded.length+1];
        t[0]=a;
        for(int i=0;i<encoded.length;i++ ){
            t[i+1]= encoded[i] ^ t[i];
        }

        return t;
    }
}
